<!--
  * t
  ****************************************************************************
  * Copyright 2018-2024,2025 Thomas E. Dickey                                *
  * Copyright 1998-2015,2017 Free Software Foundation, Inc.                  *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
  * "Software"), to deal in the Software without restriction, including      *
  * without limitation the rights to use, copy, modify, merge, publish,      *
  * distribute, distribute with modifications, sublicense, and/or sell       *
  * copies of the Software, and to permit persons to whom the Software is    *
  * furnished to do so, subject to the following conditions:                 *
  *                                                                          *
  * The above copyright notice and this permission notice shall be included  *
  * in all copies or substantial portions of the Software.                   *
  *                                                                          *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
  *                                                                          *
  * Except as contained in this notice, the name(s) of the above copyright   *
  * holders shall not be used in advertising or otherwise to promote the     *
  * sale, use or other dealings in this Software without prior written       *
  * authorization.                                                           *
  ****************************************************************************
  * @Id: ncurses.3x,v 1.243 2025/01/19 00:51:10 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
<TITLE>ncurses 3x 2025-01-18 ncurses 6.5 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">

</HEAD>
<BODY>
<H1 class="no-header">ncurses 3x 2025-01-18 ncurses 6.5 Library calls</H1>
<PRE>
<STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>                      Library calls                     <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>




</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
       <STRONG>ncurses</STRONG> - character-cell terminal interface with optimized output


</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
       <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>


</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
       The  "new  curses" library offers the programmer a terminal-independent
       means of reading keyboard and mouse input and writing to character-cell
       displays  with  output  optimized  to minimize screen updates.  <EM>ncurses</EM>
       replaces the <EM>curses</EM> libraries from System V Release 4 Unix ("SVr4") and
       4.4BSD  Unix,  the  development  of  which  ceased  in the 1990s.  This
       document describes <EM>ncurses</EM> version 6.5 (patch 20250215).

       <EM>ncurses</EM> permits control of the terminal screen's contents;  abstraction
       and  subdivision thereof with <EM>windows</EM> and <EM>pads</EM>; acquisition of keyboard
       and mouse events; selection of color and rendering attributes (such  as
       bold  or  underline); the definition and use of <EM>soft</EM> <EM>label</EM> keys; access
       to the <EM>terminfo</EM> terminal capability database; a  <EM>termcap</EM>  compatibility
       interface;  and an abstraction of the system's API for manipulating the
       terminal (such as <STRONG>termios(3)</STRONG>).

       <EM>ncurses</EM> implements the interface described by  X/Open  Curses  Issue 7.
       In many behavioral details not standardized by X/Open, <EM>ncurses</EM> emulates
       the <EM>curses</EM> library of SVr4 and provides numerous useful extensions.

       <EM>ncurses</EM> man pages employ several sections to clarify matters  of  usage
       and interoperability with other <EM>curses</EM> implementations.

       <STRONG>o</STRONG>   "NOTES"  describes  issues  and  caveats  of  which any user of the
           <EM>ncurses</EM> API should be aware, such as limitations on the size of  an
           underlying  integral  type  or  the  availability of a preprocessor
           macro exclusive  of  a  function  definition  (which  prevents  its
           address   from   being   taken).    This   section  also  describes
           implementation details of significance to the programmer but  which
           are not standardized.

       <STRONG>o</STRONG>   "EXTENSIONS"  presents <EM>ncurses</EM> innovations beyond the X/Open Curses
           standard and/or the SVr4 <EM>curses</EM> implementation.   They  are  termed
           <EM>extensions</EM>  to  indicate  that they cannot be implemented solely by
           using the library API, but require access to the library's internal
           state.

       <STRONG>o</STRONG>   "PORTABILITY" discusses matters (beyond the exercise of extensions)
           that should be considered when writing to a <EM>curses</EM> standard, or for
           multiple implementations.

       <STRONG>o</STRONG>   "HISTORY"  examines  points  of  detail in <EM>ncurses</EM> and other <EM>curses</EM>
           implementations over the decades of their development, particularly
           where precedent or inertia have frustrated better design (and, in a
           few cases, where such inertia has been overcome).

       A <EM>curses</EM> application must be linked with the library; use the <STRONG>-lncurses</STRONG>
       option  to your compiler or linker.  A debugging version of the library
       may be available; if so, link with it using <STRONG>-lncurses_g</STRONG>.  (Your  system
       integrator may have installed these libraries such that you can use the
       options <STRONG>-lcurses</STRONG> and <STRONG>-lcurses_g</STRONG>, respectively.)  The <EM>ncurses</EM><STRONG>_</STRONG><EM>g</EM>  library
       logs  events  describing  <EM>ncurses</EM> actions to a file called <EM>trace</EM> in the
       current directory.  See section "ALTERNATE CONFIGURATIONS" below.


</PRE><H3><a name="h3-Application-Structure">Application Structure</a></H3><PRE>
       A  <EM>curses</EM>  application  uses  information  from  the   system   locale;
       <STRONG>setlocale(3)</STRONG> prepares it for <EM>curses</EM> library calls.

           setlocale(LC_ALL, "");

       If  the  locale  is  not  thus  initialized,  the  library assumes that
       characters are printable as in ISO 8859-1, to work with certain  legacy
       programs.   You  should initialize the locale; do not expect consistent
       behavior from the library when the locale has not been set up.

       <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG> or <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG> must be called to initialize  <EM>curses</EM>  before
       use of any functions that access or manipulate windows or screens.

       To  get  character-at-a-time  input  without echoing--most interactive,
       screen-oriented programs want this--use the following sequence.

           initscr(); cbreak(); noecho();

       Most applications would perform further setup as follows.

           noqiflush();
           keypad(stdscr, TRUE);

       A <EM>curses</EM> program then often enters an event loop of  some  sort.   Call
       <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG> before exiting.


</PRE><H3><a name="h3-Overview">Overview</a></H3><PRE>
       A  <EM>curses</EM>  library abstracts the terminal with a <EM>SCREEN</EM> data structure,
       and represents all or part  of  its  display  with  <EM>WINDOW</EM>  structures.
       Distinct  properties apply to each; for example, the <EM>line</EM> <EM>discipline</EM> of
       a typical Unix terminal driver is in one of three modes:  raw,  cbreak,
       or  canonical ("cooked").  In <EM>curses</EM>, the line discipline is a property
       of the screen, applying identically to all windows associated with it.

       A <EM>window</EM> is a rectangular grid of character cells,  addressed  by  line
       and column coordinates (<EM>y</EM>, <EM>x</EM>), with the upper left corner as (0, 0).  A
       window called <STRONG>stdscr</STRONG>, the same size as the terminal screen,  is  always
       available.  Create others with <STRONG><A HREF="curs_window.3x.html">newwin(3x)</A></STRONG>.

       A  <EM>curses</EM>  library does not manage overlapping windows (but see below).
       You can either use <STRONG>stdscr</STRONG> to manage one screen-filling window, or  tile
       the  screen  into  non-overlapping  windows  and not use <STRONG>stdscr</STRONG> at all.
       Mixing the two approaches will result in  unpredictable  and  undesired
       effects.

       Functions  permit  manipulation  of a window and the <EM>cursor</EM> identifying
       the cell within it at which  the  next  operation  will  occur.   Among
       those,  the  most  basic  are  <STRONG><A HREF="curs_move.3x.html">move(3x)</A></STRONG>  and <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG>: these place the
       cursor within and write a character to <STRONG>stdscr</STRONG>, respectively.

       Frequent changes to the terminal screen can cause unpleasant flicker or
       inefficient  use  of  the  communication channel to the device, so as a
       rule the library does not update it  automatically.   Therefore,  after
       using <EM>curses</EM> functions to accumulate a set of desired updates that make
       sense to present together, call <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> to tell the library to make
       the  user's  screen look like <STRONG>stdscr</STRONG>.  The library <EM>optimizes</EM> its output
       by computing a minimal volume of operations to mutate the  screen  from
       its   state  at  the  previous  refresh  to  the  new  one.   Effective
       optimization demands accurate information about  the  terminal  device:
       the  management of such information is the province of the <STRONG><A HREF="curs_terminfo.3x.html">terminfo(3x)</A></STRONG>
       API, a feature of every standard <EM>curses</EM> implementation.

       Special windows called <EM>pads</EM> may also be  manipulated.   These  are  not
       constrained  to the size of the terminal screen and their contents need
       not be completely displayed.  See <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>.

       Many terminals support configuration of character cell  foreground  and
       background  colors  as  well  as  <EM>attributes</EM>, which cause characters to
       render in such modes as boldfaced, underlined,  or  in  reverse  video.
       See <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>.

       <EM>curses</EM>  predefines  constants for a small set of forms-drawing graphics
       corresponding to the DEC Alternate Character Set (ACS),  a  feature  of
       VT100 and other terminals.  See <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG>.

       <EM>curses</EM> is implemented using the operating system's terminal driver; key
       events are received not as scan  codes  but  as  byte  sequences.   The
       driver  reports  graphical  keycaps (alphanumeric and punctuation keys,
       and  the  space)  as-is.    Everything   else,   including   the   tab,
       enter/return,  keypad, arrow, and function keys, appears to <EM>curses</EM> as a
       control character or a multibyte <EM>escape</EM> <EM>sequence.</EM>  <EM>curses</EM> can translate
       the latter into unique <EM>key</EM> <EM>codes.</EM>  See <STRONG><A HREF="curs_inopts.3x.html">keypad(3x)</A></STRONG> and <STRONG><A HREF="curs_getch.3x.html">getch(3x)</A></STRONG>.

       <EM>ncurses</EM> provides reimplementations of the SVr4 <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>, and
       <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>  libraries;  they  permit   overlapping   windows   and   ease
       construction of user interfaces with <EM>curses</EM>.


</PRE><H3><a name="h3-Initialization">Initialization</a></H3><PRE>
       The   selection  of  an  appropriate  value  of  <EM>TERM</EM>  in  the  process
       environment  is  essential  to  correct  <EM>curses</EM>  and  <EM>terminfo</EM>  library
       operation.   A  well-configured  system  selects  a  correct <EM>TERM</EM> value
       automatically;  <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>  may   assist   with   troubleshooting   exotic
       situations.

       If you change the terminal type, export the shell's <EM>TERM</EM> variable, then
       run <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> or the "<STRONG>tput</STRONG>  <STRONG>init</STRONG>"  command.   See  subsection  "Tabs  and
       Initialization" of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.

       If  the  environment  variables  <EM>LINES</EM>  and  <EM>COLUMNS</EM> are set, or if the
       <EM>curses</EM> program is executing in a graphical windowing  environment,  the
       information  obtained  thence  overrides that obtained by <EM>terminfo</EM>.  An
       <EM>ncurses</EM>   extension   supports   resizable   terminal   displays;   see
       <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.

       If  the  environment  variable  <EM>TERMINFO</EM>  is  defined, a <EM>curses</EM> program
       checks first for  a  terminal  type  description  in  the  location  it
       identifies.   <EM>TERMINFO</EM>  is  useful  for developing type descriptions or
       when write permission to <EM>/usr/share/terminfo</EM> is not available.

       See section "ENVIRONMENT" below.


</PRE><H3><a name="h3-Naming-Conventions">Naming Conventions</a></H3><PRE>
       <EM>curses</EM> offers many functions in variant forms using a  regular  set  of
       alternatives  to the name of an elemental one.  Those prefixed with "w"
       require a <EM>WINDOW</EM> pointer argument;  those  with  a  "mv"  prefix  first
       perform cursor movement using <STRONG><A HREF="curs_move.3x.html">wmove(3x)</A></STRONG>; a "mvw" prefix indicates both.
       The "w" function is typically the elemental one; the  removal  of  this
       prefix usually indicates operation on <STRONG>stdscr</STRONG>.

       Four functions prefixed with "p" require a <EM>pad</EM> argument; see below.

       In  function  synopses,  <EM>ncurses</EM> man pages apply the following names to
       parameters.  We introduce the character types in the next subsection.

                <EM>bf</EM>     a <EM>bool</EM> (<STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>)
                <EM>c</EM>      a <EM>char</EM> or <EM>int</EM>
                <EM>ch</EM>     a <EM>chtype</EM>
                <EM>wc</EM>     a <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> or <EM>wint</EM><STRONG>_</STRONG><EM>t</EM>
                <EM>wch</EM>    a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>
                <EM>win</EM>    pointer to a <EM>WINDOW</EM>
                <EM>pad</EM>    pointer to a <EM>WINDOW</EM> that is a pad
                <EM>pair</EM>   a foreground/background color pair identifier


</PRE><H3><a name="h3-Wide-and-Non-wide-Character-Configurations">Wide and Non-wide Character Configurations</a></H3><PRE>
       This  man  page  primarily  surveys  functions  that  appear   in   any
       configuration of the library.  There are two common configurations; see
       section "ALTERNATE CONFIGURATIONS" below.

       <EM>ncurses</EM>   is the library in its "non-wide" configuration, handling only
                 eight-bit  characters.   It  stores a character combined with
                 attributes and a color pair identifier  in  a  <EM>chtype</EM>  datum,
                 which  is  often  an  alias  of  <EM>int</EM>.   A  string  of  <EM>curses</EM>
                 characters is similar to a C <EM>char</EM>  string;  a  <EM>chtype</EM>  string
                 ends with an integral <STRONG>0</STRONG>, the null <EM>curses</EM> character.

                 Attributes and a color pair identifier (with no corresponding
                 character) can be stored in variables  of  <EM>chtype</EM>  or  <EM>attr</EM><STRONG>_</STRONG><EM>t</EM>
                 type.   In either case, they are accessed via an integral bit
                 mask.

                 Each cell of a <EM>WINDOW</EM> is stored as a <EM>chtype</EM>.   X/Open  Curses
                 does  not  specify  the  sizes of the character code or color
                 pair identifier, nor  the  quantity  of  attribute  bits,  in
                 <EM>chtype</EM>;  these  are  implementation-dependent.   <EM>ncurses</EM> uses
                 eight bits for the character code.  An application  requiring
                 a  wider  character  type, for instance to represent Unicode,
                 should use the wide-character API.

       <EM>ncursesw</EM>  is the library in its  "wide"  configuration,  which  handles
                 character encodings requiring a larger data type than <EM>char</EM> (a
                 byte-sized  type)  can  represent.   It  provides  additional
                 functions that complement those in the non-wide library where
                 the size of the underlying character type is significant.   A
                 somewhat  regular  naming convention relates many of the wide
                 variants to their non-wide  counterparts;  where  a  non-wide
                 function  name contains "ch" or "str", prefix it with "_w" to
                 obtain the wide counterpart.   For  example,  <STRONG>waddch</STRONG>  becomes
                 <STRONG>wadd_wch</STRONG>.  Another exception is <STRONG>ins_nwstr</STRONG> (and its variants),
                 spelled thus instead of "insn_wstr".   (Exceptions  that  add
                 only "w" comprise <STRONG>addwstr</STRONG>, <STRONG>inwstr</STRONG>, and their variants.)

                 This  convention  is  inapplicable  to some non-wide function
                 names,  so  other  transformations  are  used  for  the  wide
                 configuration:  the  window  background  management  function
                 "bkgd"  becomes  "bkgrnd";  the  window  border-drawing   and
                 -clearing  functions  are suffixed with "_set"; and character
                 attribute  manipulation  functions   like   "attron"   become
                 "attr_on".

                 <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>  is a <EM>curses</EM> <EM>complex</EM> <EM>character</EM> and corresponds to the
                          non-wide configuration's <EM>chtype</EM>.  It is a  structure
                          type   because  it  requires  more  storage  than  a
                          standard scalar type offers.  A character  code  may
                          not  be  representable  as a <EM>char</EM>, and moreover more
                          than one character may occupy a cell (as with accent
                          marks  and  other diacritics).  Each character is of
                          type  <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>;  a  complex  character  contains  one
                          spacing  character  and  zero  or  more  non-spacing
                          characters  (see  below).   A  string   of   complex
                          characters  ends with a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> whose <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> member
                          is the null wide character.  Attributes and a  color
                          pair identifier are stored in separate fields of the
                          structure,  not  combined  into  an  integer  as  in
                          <EM>chtype</EM>.

                 Each  cell  of a <EM>WINDOW</EM> is stored as a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>.  <STRONG><A HREF="curs_getcchar.3x.html">setcchar(3x)</A></STRONG>
                 and <STRONG><A HREF="curs_getcchar.3x.html">getcchar(3x)</A></STRONG> store and retrieve <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> data.

                 The wide library API of <EM>ncurses</EM> depends  on  two  data  types
                 standardized by ISO C95.

                 <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>  stores  a wide character.  Like <EM>chtype</EM>, it may be an
                          alias of <EM>int</EM>.  Depending on the character  encoding,
                          a  wide  character  may  be <EM>spacing</EM>, meaning that it
                          occupies a character cell by  itself  and  typically
                          accompanies   cursor  advancement,  or  <EM>non-spacing</EM>,
                          meaning that it occupies the same cell as a  spacing
                          character,  is often regarded as a "modifier" of the
                          base glyph with which  it  combines,  and  typically
                          does not advance the cursor.

                 <EM>wint</EM><STRONG>_</STRONG><EM>t</EM>   can   store   a   <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>   or  the  constant  <EM>WEOF</EM>,
                          analogously to the <EM>int</EM>-sized character  manipulation
                          functions of ISO C and its constant <EM>EOF</EM>.


</PRE><H3><a name="h3-Function-Name-Index">Function Name Index</a></H3><PRE>
       The following table lists the <EM>curses</EM> functions provided in the non-wide
       and wide APIs and the  corresponding  man  pages  that  describe  them.
       Those  flagged  with  "*"  are  <EM>ncurses</EM>-specific,  neither described by
       X/Open Curses nor present in SVr4.

                    <EM>curses</EM> Function Name     Man Page
                    ---------------------------------------------
                    COLOR_PAIR               <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
                    PAIR_NUMBER              <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
                    add_wch                  <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
                    add_wchnstr              <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
                    add_wchstr               <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
                    addch                    <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
                    addchnstr                <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
                    addchstr                 <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
                    addnstr                  <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
                    addnwstr                 <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
                    addstr                   <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
                    addwstr                  <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
                    alloc_pair               <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>*
                    assume_default_colors    <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>*
                    attr_get                 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    attr_off                 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    attr_on                  <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    attr_set                 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    attroff                  <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    attron                   <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    attrset                  <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    baudrate                 <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
                    beep                     <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
                    bkgd                     <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
                    bkgdset                  <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
                    bkgrnd                   <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
                    bkgrndset                <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
                    border                   <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
                    border_set               <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
                    box                      <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
                    box_set                  <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
                    can_change_color         <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
                    cbreak                   <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
                    chgat                    <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    clear                    <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
                    clearok                  <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
                    clrtobot                 <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
                    clrtoeol                 <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
                    color_content            <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
                    color_set                <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    copywin                  <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
                    curs_set                 <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
                    curses_trace             <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
                    curses_version           <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
                    def_prog_mode            <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
                    def_shell_mode           <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>

                    define_key               <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>*
                    del_curterm              <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
                    delay_output             <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
                    delch                    <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
                    deleteln                 <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
                    delscreen                <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
                    delwin                   <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
                    derwin                   <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
                    doupdate                 <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
                    dupwin                   <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
                    echo                     <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
                    echo_wchar               <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
                    echochar                 <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
                    endwin                   <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
                    erase                    <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
                    erasechar                <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
                    erasewchar               <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
                    exit_curses              <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
                    exit_terminfo            <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
                    extended_color_content   <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
                    extended_pair_content    <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
                    extended_slk_color       <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
                    filter                   <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
                    find_pair                <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>*
                    flash                    <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
                    flushinp                 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
                    free_pair                <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>*
                    get_escdelay             <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>*
                    get_wch                  <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
                    get_wstr                 <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
                    getattrs                 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    getbegx                  <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
                    getbegy                  <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
                    getbegyx                 <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
                    getbkgd                  <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
                    getbkgrnd                <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
                    getcchar                 <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
                    getch                    <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
                    getcurx                  <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
                    getcury                  <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
                    getmaxx                  <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
                    getmaxy                  <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
                    getmaxyx                 <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
                    getmouse                 <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
                    getn_wstr                <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
                    getnstr                  <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
                    getparx                  <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
                    getpary                  <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
                    getparyx                 <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
                    getstr                   <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
                    getsyx                   <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
                    getwin                   <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
                    getyx                    <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
                    halfdelay                <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
                    has_colors               <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
                    has_ic                   <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
                    has_il                   <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
                    has_key                  <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>*
                    has_mouse                <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
                    hline                    <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
                    hline_set                <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
                    idcok                    <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
                    idlok                    <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
                    immedok                  <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
                    in_wch                   <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
                    in_wchnstr               <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>

                    in_wchstr                <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
                    inch                     <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
                    inchnstr                 <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
                    inchstr                  <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
                    init_color               <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
                    init_extended_color      <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
                    init_extended_pair       <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
                    init_pair                <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
                    initscr                  <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
                    innstr                   <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
                    innwstr                  <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
                    ins_nwstr                <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
                    ins_wch                  <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
                    ins_wstr                 <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
                    insch                    <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
                    insdelln                 <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
                    insertln                 <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
                    insnstr                  <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
                    insstr                   <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
                    instr                    <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
                    intrflush                <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
                    inwstr                   <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
                    is_cbreak                <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
                    is_cleared               <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
                    is_echo                  <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
                    is_idcok                 <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
                    is_idlok                 <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
                    is_immedok               <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
                    is_keypad                <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
                    is_leaveok               <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
                    is_linetouched           <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
                    is_nl                    <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
                    is_nodelay               <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
                    is_notimeout             <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
                    is_pad                   <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
                    is_raw                   <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
                    is_scrollok              <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
                    is_subwin                <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
                    is_syncok                <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
                    is_term_resized          <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
                    is_wintouched            <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
                    isendwin                 <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
                    key_defined              <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>*
                    key_name                 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
                    keybound                 <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>*
                    keyname                  <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
                    keyok                    <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>*
                    keypad                   <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
                    killchar                 <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
                    killwchar                <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
                    leaveok                  <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
                    longname                 <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
                    mcprint                  <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>*
                    meta                     <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
                    mouse_trafo              <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
                    mouseinterval            <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
                    mousemask                <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
                    move                     <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
                    mvadd_wch                <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
                    mvadd_wchnstr            <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
                    mvadd_wchstr             <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
                    mvaddch                  <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
                    mvaddchnstr              <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
                    mvaddchstr               <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
                    mvaddnstr                <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
                    mvaddnwstr               <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>

                    mvaddstr                 <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
                    mvaddwstr                <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
                    mvchgat                  <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    mvcur                    <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
                    mvdelch                  <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
                    mvderwin                 <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
                    mvget_wch                <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
                    mvget_wstr               <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
                    mvgetch                  <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
                    mvgetn_wstr              <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
                    mvgetnstr                <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
                    mvgetstr                 <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
                    mvhline                  <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
                    mvhline_set              <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
                    mvin_wch                 <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
                    mvin_wchnstr             <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
                    mvin_wchstr              <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
                    mvinch                   <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
                    mvinchnstr               <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
                    mvinchstr                <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
                    mvinnstr                 <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
                    mvinnwstr                <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
                    mvins_nwstr              <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
                    mvins_wch                <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
                    mvins_wstr               <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
                    mvinsch                  <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
                    mvinsnstr                <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
                    mvinsstr                 <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
                    mvinstr                  <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
                    mvinwstr                 <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
                    mvprintw                 <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
                    mvscanw                  <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
                    mvvline                  <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
                    mvvline_set              <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
                    mvwadd_wch               <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
                    mvwadd_wchnstr           <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
                    mvwadd_wchstr            <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
                    mvwaddch                 <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
                    mvwaddchnstr             <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
                    mvwaddchstr              <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
                    mvwaddnstr               <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
                    mvwaddnwstr              <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
                    mvwaddstr                <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
                    mvwaddwstr               <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
                    mvwchgat                 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    mvwdelch                 <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
                    mvwget_wch               <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
                    mvwget_wstr              <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
                    mvwgetch                 <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
                    mvwgetn_wstr             <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
                    mvwgetnstr               <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
                    mvwgetstr                <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
                    mvwhline                 <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
                    mvwhline_set             <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
                    mvwin                    <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
                    mvwin_wch                <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
                    mvwin_wchnstr            <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
                    mvwin_wchstr             <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
                    mvwinch                  <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
                    mvwinchnstr              <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
                    mvwinchstr               <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
                    mvwinnstr                <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
                    mvwinnwstr               <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
                    mvwins_nwstr             <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
                    mvwins_wch               <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
                    mvwins_wstr              <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>

                    mvwinsch                 <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
                    mvwinsnstr               <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
                    mvwinsstr                <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
                    mvwinstr                 <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
                    mvwinwstr                <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
                    mvwprintw                <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
                    mvwscanw                 <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
                    mvwvline                 <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
                    mvwvline_set             <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
                    napms                    <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
                    newpad                   <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
                    newterm                  <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
                    newwin                   <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
                    nl                       <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
                    nocbreak                 <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
                    nodelay                  <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
                    noecho                   <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
                    nofilter                 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>*
                    nonl                     <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
                    noqiflush                <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
                    noraw                    <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
                    notimeout                <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
                    overlay                  <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
                    overwrite                <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
                    pair_content             <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
                    pecho_wchar              <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
                    pechochar                <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
                    pnoutrefresh             <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
                    prefresh                 <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
                    printw                   <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
                    putp                     <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
                    putwin                   <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
                    qiflush                  <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
                    raw                      <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
                    redrawwin                <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
                    refresh                  <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
                    reset_color_pairs        <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
                    reset_prog_mode          <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
                    reset_shell_mode         <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
                    resetty                  <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
                    resize_term              <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
                    resizeterm               <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
                    restartterm              <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
                    ripoffline               <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
                    savetty                  <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
                    scanw                    <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
                    scr_dump                 <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
                    scr_init                 <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
                    scr_restore              <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
                    scr_set                  <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
                    scrl                     <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
                    scroll                   <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
                    scrollok                 <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
                    set_curterm              <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
                    set_escdelay             <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>*
                    set_tabsize              <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>*
                    set_term                 <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
                    setcchar                 <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
                    setscrreg                <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
                    setsyx                   <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
                    setupterm                <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
                    slk_attr                 <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
                    slk_attr_off             <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
                    slk_attr_on              <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
                    slk_attr_set             <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
                    slk_attroff              <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>

                    slk_attron               <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
                    slk_attrset              <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
                    slk_clear                <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
                    slk_color                <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
                    slk_init                 <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
                    slk_label                <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
                    slk_noutrefresh          <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
                    slk_refresh              <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
                    slk_restore              <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
                    slk_set                  <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
                    slk_touch                <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
                    slk_wset                 <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
                    standend                 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    standout                 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    start_color              <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
                    subpad                   <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
                    subwin                   <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
                    syncok                   <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
                    term_attrs               <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
                    termattrs                <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
                    termname                 <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
                    tgetent                  <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
                    tgetflag                 <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
                    tgetnum                  <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
                    tgetstr                  <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
                    tgoto                    <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
                    tigetflag                <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
                    tigetnum                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
                    tigetstr                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
                    timeout                  <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
                    tiparm                   <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
                    tiparm_s                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>*
                    tiscan_s                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>*
                    touchline                <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
                    touchwin                 <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
                    tparm                    <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
                    tputs                    <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
                    tputs                    <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
                    trace                    <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
                    typeahead                <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
                    unctrl                   <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
                    unget_wch                <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
                    ungetch                  <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
                    ungetmouse               <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
                    untouchwin               <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
                    use_default_colors       <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>*
                    use_env                  <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
                    use_extended_names       <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
                    use_legacy_coding        <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>*
                    use_screen               <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>*
                    use_tioctl               <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>*
                    use_window               <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>*
                    vid_attr                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
                    vid_puts                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
                    vidattr                  <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
                    vidputs                  <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
                    vline                    <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
                    vline_set                <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
                    vw_printw                <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
                    vw_scanw                 <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
                    vwprintw                 <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
                    vwscanw                  <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
                    wadd_wch                 <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
                    wadd_wchnstr             <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
                    wadd_wchstr              <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
                    waddch                   <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>

                    waddchnstr               <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
                    waddchstr                <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
                    waddnstr                 <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
                    waddnwstr                <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
                    waddstr                  <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
                    waddwstr                 <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
                    wattr_get                <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    wattr_off                <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    wattr_on                 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    wattr_set                <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    wattroff                 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    wattron                  <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    wattrset                 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    wbkgd                    <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
                    wbkgdset                 <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
                    wbkgrnd                  <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
                    wbkgrndset               <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
                    wborder                  <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
                    wborder_set              <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
                    wchgat                   <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    wclear                   <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
                    wclrtobot                <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
                    wclrtoeol                <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
                    wcolor_set               <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    wcursyncup               <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
                    wdelch                   <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
                    wdeleteln                <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
                    wecho_wchar              <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
                    wechochar                <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
                    wenclose                 <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
                    werase                   <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
                    wget_wch                 <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
                    wget_wstr                <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
                    wgetbkgrnd               <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
                    wgetch                   <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
                    wgetdelay                <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
                    wgetn_wstr               <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
                    wgetnstr                 <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
                    wgetparent               <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
                    wgetscrreg               <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
                    wgetstr                  <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
                    whline                   <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
                    whline_set               <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
                    win_wch                  <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
                    win_wchnstr              <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
                    win_wchstr               <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
                    winch                    <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
                    winchnstr                <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
                    winchstr                 <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
                    winnstr                  <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
                    winnwstr                 <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
                    wins_nwstr               <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
                    wins_wch                 <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
                    wins_wstr                <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
                    winsch                   <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
                    winsdelln                <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
                    winsertln                <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
                    winsnstr                 <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
                    winsstr                  <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
                    winstr                   <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
                    winwstr                  <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
                    wmouse_trafo             <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
                    wmove                    <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
                    wnoutrefresh             <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
                    wprintw                  <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
                    wredrawln                <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>

                    wrefresh                 <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
                    wresize                  <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>*
                    wscanw                   <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
                    wscrl                    <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
                    wsetscrreg               <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
                    wstandend                <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    wstandout                <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                    wsyncdown                <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
                    wsyncup                  <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
                    wtimeout                 <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
                    wtouchln                 <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
                    wunctrl                  <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
                    wvline                   <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
                    wvline_set               <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>

       <EM>ncurses</EM>'s   <EM>screen-pointer</EM>   <EM>extension</EM>   adds   additional    functions
       corresponding  to  many  of  the  above, each with an "_sp" suffix; see
       <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>.

       The availability of some extensions is  configurable  when  <EM>ncurses</EM>  is
       compiled;  see  sections  "ALTERNATE  CONFIGURATIONS"  and "EXTENSIONS"
       below.


</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
       Unless otherwise noted,  functions  that  return  integers  return  the
       constants  <STRONG>OK</STRONG>  on  success  and <STRONG>ERR</STRONG> on failure; see <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
       Functions that return pointers  return  <EM>NULL</EM>  on  failure.   Typically,
       <EM>ncurses</EM>  treats  a  null  pointer  passed  as a function parameter as a
       failure.  Functions prefixed with "mv" first  perform  cursor  movement
       and fail if the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.


</PRE><H2><a name="h2-ENVIRONMENT">ENVIRONMENT</a></H2><PRE>
       The  following  symbols  from  the  process  environment  customize the
       runtime  behavior  of  <EM>ncurses</EM>  applications.   The  library   may   be
       configured   to   disregard   the  variables  <EM>TERMINFO</EM>,  <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM>,
       <EM>TERMPATH</EM>, and <EM>HOME</EM>, if  the  user  is  the  superuser  (root),  or  the
       application uses <STRONG>setuid(2)</STRONG> or <STRONG>setgid(2)</STRONG>.


</PRE><H3><a name="h3-BAUDRATE"><EM>BAUDRATE</EM></a></H3><PRE>
       The  debugging  library  checks  this variable when the application has
       redirected output to a file.  <EM>ncurses</EM> interprets its integral value  as
       the  terminal's line speed in bits per second.  If that value is absent
       or invalid, <EM>ncurses</EM> uses  9600.   This  feature  allows  developers  to
       construct  repeatable  test  cases  that take into account optimization
       decisions that depend on the terminal's line speed.


</PRE><H3><a name="h3-CC-_command-character_"><EM>CC</EM> (command character)</a></H3><PRE>
       When set, the <STRONG>command_character</STRONG>  (<STRONG>cmdch</STRONG>)  capability  value  of  loaded
       <EM>terminfo</EM> entries changes to the value of this variable.  Very few <EM>term-</EM>
       <EM>info</EM> entries provide this feature.

       Because this name is also used in development environments to store the
       C compiler's name, <EM>ncurses</EM> ignores its value if it is not one character
       in length.


</PRE><H3><a name="h3-COLUMNS"><EM>COLUMNS</EM></a></H3><PRE>
       This  variable  specifies  the  width  of  the  screen  in  characters.
       Applications  running  in  a  windowing environment usually are able to
       obtain the width of the window in which they  are  executing.   <EM>ncurses</EM>
       enforces  an  upper limit of 512 when reading the value.  If <EM>COLUMNS</EM> is
       not defined and the terminal's screen size is not  available  from  the
       terminal  driver, <EM>ncurses</EM> uses the size specified by the <STRONG>columns</STRONG> (<STRONG>cols</STRONG>)
       capability of the terminal type's entry in the  <EM>terminfo</EM>  database,  if
       any.

       It  is  important  that  your  application use the correct screen size.
       Automatic  detection  thereof  is  not  always  possible   because   an
       application  may  be  running  on  a  host  that  does  not  honor NAWS
       (Negotiations About Window Size) or as a different  user  ID  than  the
       owner  of  the  terminal  device  file.   Setting  <EM>COLUMNS</EM> and/or <EM>LINES</EM>
       overrides the library's use  of  the  screen  size  obtained  from  the
       operating system.

       The  <EM>COLUMNS</EM>  and <EM>LINES</EM> variables may be specified independently.  This
       property is useful to circumvent misfeatures of  legacy  terminal  type
       descriptions;  <STRONG>xterm(1)</STRONG>  descriptions  specifying  65  lines  were once
       notorious.   For  best  results,  avoid  specifying  <STRONG>cols</STRONG>   and   <STRONG>lines</STRONG>
       capability codes in <EM>terminfo</EM> descriptions of terminal emulators.

       <STRONG><A HREF="curs_util.3x.html">use_env(3x)</A></STRONG>  can  disable use of the process environment in determining
       the screen size.  <STRONG><A HREF="curs_util.3x.html">use_tioctl(3x)</A></STRONG> can update <EM>COLUMNS</EM> and <EM>LINES</EM> to  match
       the screen size obtained from system calls or the terminal database.


</PRE><H3><a name="h3-ESCDELAY"><EM>ESCDELAY</EM></a></H3><PRE>
       For  <EM>curses</EM>  to  distinguish  the ESC character resulting from a user's
       press of the "Escape" key on the input device  from  one  beginning  an
       <EM>escape</EM> <EM>sequence</EM> (as commonly produced by function keys), it waits after
       receiving the  escape  character  to  see  if  further  characters  are
       available  on  the  input  stream  within  a  short interval.  A global
       variable <STRONG>ESCDELAY</STRONG> stores this interval in  milliseconds.   The  default
       value of 1000 (one second) is adequate for most uses.  This environment
       variable overrides it; <EM>ncurses</EM> enforces an upper limit  of  30,000  (30
       seconds) when reading the value.

       The  most common instance where you may wish to change this value is to
       work with a remote host over a slow communication channel.  If the host
       running  a  <EM>curses</EM>  application  does  not receive the characters of an
       escape sequence in a timely manner, the library can interpret  them  as
       multiple key stroke events.

       <STRONG>xterm(1)</STRONG> mouse events are a form of escape sequence; therefore, if your
       application makes heavy use  of  multiple-clicking,  you  may  wish  to
       lengthen  the  default value because the delay applies to the composite
       multi-click event as well as the individual clicks.

       Portable applications should not rely upon the presence of <STRONG>ESCDELAY</STRONG>  in
       either  form,  but  setting  the  environment  variable rather than the
       global variable does not create problems when compiling an application.

       If <STRONG><A HREF="curs_inopts.3x.html">keypad(3x)</A></STRONG> is disabled for the  <EM>curses</EM>  window  receiving  input,  a
       program must disambiguate escape sequences itself.


</PRE><H3><a name="h3-HOME"><EM>HOME</EM></a></H3><PRE>
       <EM>ncurses</EM>  may read and write auxiliary terminal descriptions in <EM>.termcap</EM>
       and <EM>.terminfo</EM> files in the user's home directory.


</PRE><H3><a name="h3-LINES"><EM>LINES</EM></a></H3><PRE>
       This counterpart to <EM>COLUMNS</EM> specifies  the  height  of  the  screen  in
       characters.   The  corresponding <EM>terminfo</EM> capability and code is <STRONG>lines</STRONG>.
       See the description of the <EM>COLUMNS</EM> variable above.


</PRE><H3><a name="h3-MOUSE_BUTTONS_123"><EM>MOUSE_BUTTONS_123</EM></a></H3><PRE>
       (OS/2 EMX port only) OS/2 numbers a three-button  mouse  inconsistently
       with  other platforms, such that 1 is the left button, 2 the right, and
       3 the middle.  This variable customizes  the  mouse  button  numbering.
       Its  value  must be three digits 1-3 in any order.  By default, <EM>ncurses</EM>
       assumes a numbering of "132".


</PRE><H3><a name="h3-NCURSES_ASSUMED_COLORS"><EM>NCURSES_ASSUMED_COLORS</EM></a></H3><PRE>
       If set, this  variable  overrides  the  <EM>ncurses</EM>  library's  compiled-in
       assumption  that  the terminal's default colors are white on black; see
       <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>.  Set the foreground  and  background  color  values
       with  this  environment  variable  by  assigning  it two integer values
       separated  by  a  comma,  indicating  foregound  and  background  color
       numbers, respectively.

       For  example,  to tell <EM>ncurses</EM> not to assume anything about the colors,
       use a value of "-1,-1".  To make the  default  color  scheme  green  on
       black,  use  "2,0".   <EM>ncurses</EM> accepts integral values from -1 up to the
       value of the <EM>terminfo</EM> <STRONG>max_colors</STRONG> (<STRONG>colors</STRONG>) capability.


</PRE><H3><a name="h3-NCURSES_CONSOLE2"><EM>NCURSES_CONSOLE2</EM></a></H3><PRE>
       (MinGW  port  only)  The  <EM>Console2</EM>  program  defectively  handles   the
       Microsoft  Console  API  call  <EM>CreateConsoleScreenBuffer</EM>.  Applications
       that use it will hang.  However, it is possible to simulate the  action
       of  this  call  by mapping coordinates, explicitly saving and restoring
       the original screen contents.  Setting the environment  variable  <EM>NCGDB</EM>
       has the same effect.


</PRE><H3><a name="h3-NCURSES_GPM_TERMS"><EM>NCURSES_GPM_TERMS</EM></a></H3><PRE>
       (Linux  only) When <EM>ncurses</EM> is configured to use the GPM interface, this
       variable may list  one  or  more  terminal  type  names,  delimited  by
       vertical  bars  (<STRONG>|</STRONG>) or colons (<STRONG>:</STRONG>), against which the <EM>TERM</EM> variable (see
       below) is matched.  An empty value disables the  GPM  interface,  using
       <EM>ncurses</EM>'s  built-in  support  for <STRONG>xterm(1)</STRONG> mouse protocols instead.  If
       the variable is absent, <EM>ncurses</EM> attempts to open GPM if  <EM>TERM</EM>  contains
       "linux".


</PRE><H3><a name="h3-NCURSES_NO_HARD_TABS"><EM>NCURSES_NO_HARD_TABS</EM></a></H3><PRE>
       <EM>ncurses</EM>  may  use  tab  characters in cursor movement optimization.  In
       some cases, your terminal driver may not  handle  them  properly.   Set
       this environment variable to any value to disable the feature.  You can
       also adjust your <STRONG>stty(1)</STRONG> settings to avoid the problem.


</PRE><H3><a name="h3-NCURSES_NO_MAGIC_COOKIE"><EM>NCURSES_NO_MAGIC_COOKIE</EM></a></H3><PRE>
       Many terminals store video attributes as  a  property  of  a  character
       cell,  as  <EM>curses</EM>  does.   Historically, some recorded changes in video
       attributes as data that  logically  <EM>occupies</EM>  character  cells  on  the
       display,  switching attributes on or off, similarly to tags in a markup
       language; these are termed "magic cookies", and  must  be  subsequently
       overprinted.   If  the  <EM>terminfo</EM>  entry for your terminal type does not
       adequately describe its handling of magic cookies, set this variable to
       any value to instruct <EM>ncurses</EM> to disable attributes entirely.


</PRE><H3><a name="h3-NCURSES_NO_PADDING"><EM>NCURSES_NO_PADDING</EM></a></H3><PRE>
       Most  terminal  type  descriptions  in  the  <EM>terminfo</EM>  database  detail
       hardware  devices.   Many  people  use  <EM>curses</EM>-based  applications   in
       terminal  emulator programs that run in a windowing environment.  These
       programs can duplicate all of the  important  features  of  a  hardware
       terminal,  but  often lack their limitations.  Chief among these absent
       drawbacks is the problem of data flow management; that is, limiting the
       speed  of  communication  to  what the hardware could handle.  Unless a
       hardware terminal is interfaced into  a  terminal  concentrator  (which
       does  flow  control), an application must manage flow itself to prevent
       overruns and data loss.

       A solution that comes at no hardware cost  is  for  an  application  to
       pause  after  directing  a  terminal  to  execute  an operation that it
       performs slowly, such as clearing  the  display.   Many  terminal  type
       descriptions,  including that for the VT100, embed delay specifications
       in capabilities.  You may  wish  to  use  these  terminal  descriptions
       without  paying the performance penalty.  Set <EM>NCURSES</EM><STRONG>_</STRONG><EM>NO</EM><STRONG>_</STRONG><EM>PADDING</EM> to any
       value to disable all but mandatory padding.  Mandatory padding is  used
       by such terminal capabilities as <STRONG>flash_screen</STRONG> (<STRONG>flash</STRONG>).


</PRE><H3><a name="h3-NCURSES_NO_SETBUF"><EM>NCURSES_NO_SETBUF</EM></a></H3><PRE>
       (Obsolete)  Prior to internal changes developed in <EM>ncurses</EM> 5.9 (patches
       20120825 through 20130126), the library used <STRONG>setbuf(3)</STRONG> to enable  fully
       buffered  output  when initializing the terminal.  This was done, as in
       SVr4 <EM>curses</EM>, to increase performance.  For testing  purposes,  both  of
       <EM>ncurses</EM>  and  of  certain applications, this feature was made optional.
       Setting this variable disabled output  buffering,  leaving  the  output
       stream in the original (usually line-buffered) mode.

       Nowadays,  <EM>ncurses</EM> performs its own buffering and does not require this
       workaround; it does not modify the buffering  of  the  standard  output
       stream.   This  approach makes signal handling, as for interrupts, more
       robust.  A drawback  is  that  certain  unconventional  programs  mixed
       <STRONG>stdio(3)</STRONG>  calls  with <EM>ncurses</EM> calls and (usually) got the behavior they
       expected.  This is no longer the case; <EM>ncurses</EM> does not  write  to  the
       standard output file descriptor through a <EM>stdio</EM>-buffered stream.

       As  a  special case, low-level API calls such as <STRONG><A HREF="curs_terminfo.3x.html">putp(3x)</A></STRONG> still use the
       standard output stream.  High-level <EM>curses</EM> calls such as <STRONG><A HREF="curs_printw.3x.html">printw(3x)</A></STRONG>  do
       not.


</PRE><H3><a name="h3-NCURSES_NO_UTF8_ACS"><EM>NCURSES_NO_UTF8_ACS</EM></a></H3><PRE>
       At  initialization,  <EM>ncurses</EM> inspects the <EM>TERM</EM> environment variable for
       special  cases  where   VT100   forms-drawing   characters   (and   the
       corresponding  alternate character set <EM>terminfo</EM> capabilities) are known
       to  be  unsupported  by  terminal  types  that  otherwise  claim  VT100
       compatibility.  Specifically, when running in a UTF-8 locale, the Linux
       virtual console device and the GNU <STRONG>screen(1)</STRONG> program ignore them.   Set
       this  variable  to  a  nonzero  value  to  instruct  <EM>ncurses</EM>  that  the
       terminal's ACS support is broken; the library then outputs Unicode code
       points that correspond to the forms-drawing characters.  Set it to zero
       (or a non-integer) to disable the special check for terminal type names
       matching  "linux" or "screen", directing <EM>ncurses</EM> to assume that the ACS
       feature works if the terminal type description advertises it.

       As an alternative to use  of  this  variable,  <EM>ncurses</EM>  checks  for  an
       extended <EM>terminfo</EM> numeric capability <STRONG>U8</STRONG> that can be compiled using "<STRONG>tic</STRONG>
       <STRONG>-x</STRONG>".  Examples follow.

          # linux console, if patched to provide working
          # VT100 shift-in/shift-out, with corresponding font.
          linux-vt100|linux console with VT100 line-graphics,
                  U8#0, use=linux,

          # uxterm with vt100Graphics resource set to false
          xterm-utf8|xterm relying on UTF-8 line-graphics,
                  U8#1, use=xterm,

       The two-character name "U8" was chosen to permit its use via  <EM>ncurses</EM>'s
       <EM>termcap</EM> interface.


</PRE><H3><a name="h3-NCURSES_TRACE"><EM>NCURSES_TRACE</EM></a></H3><PRE>
       At  initialization, <EM>ncurses</EM> (in its debugging configuration) checks for
       this variable's presence.  If  defined  with  an  integral  value,  the
       library calls <STRONG><A HREF="curs_trace.3x.html">curses_trace(3x)</A></STRONG> with that value as the argument.


</PRE><H3><a name="h3-TERM"><EM>TERM</EM></a></H3><PRE>
       The  <EM>TERM</EM> variable denotes the terminal type.  Each is distinct, though
       many are similar.  It is commonly set by  terminal  emulators  to  help
       applications  find  a  workable  terminal  description.   Some choose a
       popular approximation such as "ansi", "vt100", or "xterm"  rather  than
       an  exact  fit to their capabilities.  Not infrequently, an application
       will have problems with that approach; for example, a  key  stroke  may
       not  operate  correctly,  or  produce  no  effect  but  seeming garbage
       characters on the screen.

       Setting <EM>TERM</EM> has no effect on hardware operation; it  affects  the  way
       applications  communicate  with  the  terminal.  Likewise, as a general
       rule (<STRONG>xterm(1)</STRONG> being a rare exception), terminal emulators  that  allow
       you to specify <EM>TERM</EM> as a parameter or configuration value do not change
       their behavior to match that setting.


</PRE><H3><a name="h3-TERMCAP"><EM>TERMCAP</EM></a></H3><PRE>
       If <EM>ncurses</EM> is configured with <EM>termcap</EM> support, it checks for a terminal
       type  description  in  <EM>termcap</EM>  format if one in <EM>terminfo</EM> format is not
       available.  Setting this variable directs <EM>ncurses</EM> to ignore  the  usual
       <EM>termcap</EM>  database  location, <EM>/etc/termcap</EM>; see <EM>TERMPATH</EM> below.  <EM>TERMCAP</EM>
       should contain either a terminal description  (with  newlines  stripped
       out),  or  a file name indicating where the information required by the
       <EM>TERM</EM> environment variable is stored.


</PRE><H3><a name="h3-TERMINFO"><EM>TERMINFO</EM></a></H3><PRE>
       <EM>ncurses</EM> can be configured to read terminal type  description  databases
       in  various locations using different formats.  This variable overrides
       the default location.

       <STRONG>o</STRONG>   Descriptions in <EM>terminfo</EM> format are normally stored in a  directory
           tree using subdirectories named for the common first letters of the
           terminal types named therein.  This is the scheme used in System V.

       <STRONG>o</STRONG>   If <EM>ncurses</EM> is configured to use hashed databases, then <EM>TERMINFO</EM> may
           name  its  location,  such  as  <EM>/usr/share/terminfo.db</EM>, rather than
           <EM>/usr/share/terminfo/</EM>.

       The hashed database uses less disk space and is a  little  faster  than
       the directory tree.  However, some applications assume the existence of
       the directory tree, and read it directly rather than using the <EM>terminfo</EM>
       API.

       <STRONG>o</STRONG>   If  <EM>ncurses</EM>  is  configured with <EM>termcap</EM> support, this variable may
           contain the location of a <EM>termcap</EM> file.

       <STRONG>o</STRONG>   If the value of <EM>TERMINFO</EM> begins with "hex:" or "b64:", <EM>ncurses</EM> uses
           the remainder of the value as a compiled <EM>terminfo</EM> description.  You
           might produce the base64 format using <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>.

                  TERMINFO=$(infocmp -0 -Q2 -q)
                  export TERMINFO

           The compiled description is used only  if  it  corresponds  to  the
           terminal type identified by <EM>TERM</EM>.

       Setting  <EM>TERMINFO</EM>  is  the  simplest,  but  not the only, way to direct
       <EM>ncurses</EM> to a terminal database.  The search path is as follows.

       <STRONG>o</STRONG>   the last terminal database to which the running <EM>ncurses</EM> application
           wrote, if any

       <STRONG>o</STRONG>   the location specified by the <EM>TERMINFO</EM> environment variable

       <STRONG>o</STRONG>   <EM>$HOME/.terminfo</EM>

       <STRONG>o</STRONG>   locations listed in the <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> environment variable

       <STRONG>o</STRONG>   location(s) configured and compiled into <EM>ncurses</EM>

           <STRONG>o</STRONG>   <EM>/usr/share/terminfo</EM>


</PRE><H3><a name="h3-TERMINFO_DIRS"><EM>TERMINFO_DIRS</EM></a></H3><PRE>
       This  variable  specifies  a  list of locations, akin to <EM>PATH</EM>, in which
       <EM>ncurses</EM> searches  for  the  terminal  type  descriptions  described  by
       <EM>TERMINFO</EM>  above.   The  list  items are separated by colons on Unix and
       semicolons on  OS/2  EMX.   System V  <EM>terminfo</EM>  lacks  a  corresponding
       feature; <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> is an <EM>ncurses</EM> extension.


</PRE><H3><a name="h3-TERMPATH"><EM>TERMPATH</EM></a></H3><PRE>
       If <EM>TERMCAP</EM> does not hold a terminal type description or file name, then
       <EM>ncurses</EM> checks the contents of <EM>TERMPATH</EM>, a list of locations,  akin  to
       <EM>PATH</EM>, in which it searches for <EM>termcap</EM> terminal type descriptions.  The
       list items are separated by colons on Unix and semicolons on OS/2 EMX.

       If both <EM>TERMCAP</EM> and <EM>TERMPATH</EM> are unset or invalid, <EM>ncurses</EM> searches for
       the files <EM>/etc/termcap</EM>, <EM>/usr/share/misc/termcap</EM>, and <EM>$HOME/.termcap</EM>, in
       that order.


</PRE><H2><a name="h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></H2><PRE>
       Many different <EM>ncurses</EM> configurations are possible, determined  by  the
       options  given  to the <EM>configure</EM> script when building the library.  Run
       the script with the <STRONG>--help</STRONG> option to peruse them all.   A  few  are  of
       particular significance to the application developer employing <EM>ncurses</EM>.

       <STRONG>--disable-overwrite</STRONG>
            The standard C preprocessor inclusion for the <EM>curses</EM> library is as
            follows.

                <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>

            This option is used to avoid file name conflicts  between  <EM>ncurses</EM>
            and  an existing <EM>curses</EM> installation on the system.  If <EM>ncurses</EM> is
            installed disabling overwrite, it  puts  its  header  files  in  a
            subdirectory.  Here is an example.

                <STRONG>#include</STRONG> <STRONG>&lt;ncurses/curses.h&gt;</STRONG>

            Installation  also  omits  a  symbolic  link  that would cause the
            compiler's <STRONG>-lcurses</STRONG> option  to  link  object  files  with  <EM>ncurses</EM>
            instead of the system <EM>curses</EM> library.

            The  directory  used  by this configuration of <EM>ncurses</EM> is shown in
            section "SYNOPSIS" above.

       <STRONG>--enable-widec</STRONG>
            The  configure  script   renames   the   library   and   (if   the
            <STRONG>--disable-overwrite</STRONG>  option  is  used)  puts the header files in a
            different subdirectory.  All of  the  library  names  have  a  "w"
            appended to them, i.e., instead of

                <STRONG>-lncurses</STRONG>

            you link with

                <STRONG>-lncursesw</STRONG>

            You  must  also  enable  the wide-character features in the header
            file when compiling for the  wide-character  library  to  use  the
            extended  (wide-character)  functions.   The  symbol which enables
            these features has changed since X/Open Curses Issue 4:

            <STRONG>o</STRONG>   Originally, the wide-character  feature  required  the  symbol
                <STRONG>_XOPEN_SOURCE_EXTENDED</STRONG>  but  that  was  only  valid  for  XPG4
                (1996).

            <STRONG>o</STRONG>   Later, that was deemed conflicting with <STRONG>_XOPEN_SOURCE</STRONG>  defined
                to 500.

            <STRONG>o</STRONG>   As  of  mid-2018,  none of the features in this implementation
                require a <STRONG>_XOPEN_SOURCE</STRONG> feature greater  than  600.   However,
                X/Open Curses Issue 7 (2009) recommends defining it to 700.

            <STRONG>o</STRONG>   Alternatively,   you   can  enable  the  feature  by  defining
                <STRONG>NCURSES_WIDECHAR</STRONG> with the caveat that some other  header  file
                than  <STRONG>curses.h</STRONG>  may require a specific value for <STRONG>_XOPEN_SOURCE</STRONG>
                (or a system-specific symbol).

            The <EM>curses.h</EM> header file installed for the wide-character  library
            is  designed  to be compatible with the non-wide library's header.
            Only the size of the <EM>WINDOW</EM> structure  differs;  few  applications
            require more than pointers to <EM>WINDOW</EM>s.

            If  the  headers  are  installed  allowing  overwrite,  the  wide-
            character library's headers should be  installed  last,  to  allow
            applications to be built using either library from the same set of
            headers.

       <STRONG>--with-pthread</STRONG>
            The configure script renames the  library.   All  of  the  library
            names  have  a  "t"  appended  to  them  (before  any "w" added by
            <STRONG>--enable-widec</STRONG>).

            The global variables such as <STRONG>LINES</STRONG> are replaced by macros to allow
            read-only access.  At the same time, setter-functions are provided
            to set these values.  Some applications  (very  few)  may  require
            changes to work with this convention.

       <STRONG>--with-shared</STRONG>
       <STRONG>--with-normal</STRONG>
       <STRONG>--with-debug</STRONG>
       <STRONG>--with-profile</STRONG>
            The  shared  and  normal  (static)  library  names differ by their
            suffixes, e.g., <STRONG>libncurses.so</STRONG> and  <STRONG>libncurses.a</STRONG>.   The  debug  and
            profiling  libraries  add  a  "_g"  and  a  "_p" to the root names
            respectively, e.g., <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>.

       <STRONG>--with-termlib</STRONG>
            Low-level functions which do not depend upon whether  the  library
            supports wide-characters, are provided in the tinfo library.

            By  doing  this, it is possible to share the tinfo library between
            wide/normal configurations as well  as  reduce  the  size  of  the
            library when only low-level functions are needed.

            Those functions are described in these pages:

            <STRONG>o</STRONG>   <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG> - miscellaneous <EM>curses</EM> extensions

            <STRONG>o</STRONG>   <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> - <EM>curses</EM> input options

            <STRONG>o</STRONG>   <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> - low-level <EM>curses</EM> routines

            <STRONG>o</STRONG>   <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> - <EM>curses</EM> environment query routines

            <STRONG>o</STRONG>   <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> - <EM>curses</EM> emulation of <EM>termcap</EM>

            <STRONG>o</STRONG>   <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> - <EM>curses</EM> interface to <EM>terminfo</EM> database

            <STRONG>o</STRONG>   <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> - miscellaneous <EM>curses</EM> utility routines

       <STRONG>--with-trace</STRONG>
            The  <STRONG>trace</STRONG>  function normally resides in the debug library, but it
            is sometimes useful to  configure  this  in  the  shared  library.
            Configure scripts should check for the function's existence rather
            than assuming it is always in the debug library.


</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
       <EM>/usr/share/tabset</EM>
              tab stop initialization database

       <EM>/usr/share/terminfo</EM>
              compiled terminal capability database


</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
       X/Open Curses permits most functions it specifies to be made  available
       as macros as well.  <EM>ncurses</EM> does so

       <STRONG>o</STRONG>   for functions that return values via their parameters,

       <STRONG>o</STRONG>   to support obsolete features,

       <STRONG>o</STRONG>   to  reuse functions (for example, those that move the cursor before
           another operation), and

       <STRONG>o</STRONG>   in a few special cases.

       If the standard  output  file  descriptor  of  an  <EM>ncurses</EM>  program  is
       redirected  to  something  that  is  not a terminal device, the library
       writes screen updates to the standard error file descriptor.  This  was
       an undocumented feature of SVr3 <EM>curses</EM>.

       See  subsection  "Header  Files"  below  regarding  symbols  exposed by
       inclusion of <EM>curses.h</EM>.


</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
       <EM>ncurses</EM> enables an application  to  capture  mouse  events  on  certain
       terminals, including <STRONG>xterm(1)</STRONG>; see <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>.

       <EM>ncurses</EM>  provides  a  means of responding to window resizing events, as
       when running in a GUI terminal emulator application such as <EM>xterm</EM>;  see
       <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.

       <EM>ncurses</EM> allows an application to query the terminal for the presence of
       a wide variety of special keys; see <STRONG><A HREF="curs_getch.3x.html">has_key(3x)</A></STRONG>.

       <EM>ncurses</EM> extends the fixed set of function key capabilities specified by
       X/Open   Curses  by  allowing  the  application  programmer  to  define
       additional key events at runtime; see <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>,  <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>,
       <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>, and <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>.

       <EM>ncurses</EM>   can   exploit  the  capabilities  of  terminals  implementing
       ISO 6429/ECMA-48  SGR 39  and  SGR 49   sequences,   which   allow   an
       application  to  reset  the  terminal  to  its  original foreground and
       background colors.  From a user's perspective, the application is  able
       to  draw colored text on a background whose color is set independently,
       providing better control over color contrasts.  See <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>.

       An <EM>ncurses</EM> application  can  eschew  knowledge  of  <EM>SCREEN</EM>  and  <EM>WINDOW</EM>
       structure   internals,   instead   using  accessor  functions  such  as
       <STRONG><A HREF="curs_inopts.3x.html">is_cbreak(3x)</A></STRONG> and <STRONG><A HREF="curs_opaque.3x.html">is_scrollok(3x)</A></STRONG>.

       <EM>ncurses</EM> enables an application  to  direct  its  output  to  a  printer
       attached to the terminal device; see <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>.

       <EM>ncurses</EM>  offers <STRONG><A HREF="curs_slk.3x.html">slk_attr(3x)</A></STRONG> as a counterpart of <STRONG><A HREF="curs_attr.3x.html">attr_get(3x)</A></STRONG> for soft-
       label key lines, and <STRONG><A HREF="curs_slk.3x.html">extended_slk_color(3x)</A></STRONG> as a form of  <STRONG><A HREF="curs_slk.3x.html">slk_color(3x)</A></STRONG>
       that  can  gather  color  information  from  them  when many colors are
       supported.

       <EM>ncurses</EM>   permits   modification   of   <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>'s   behavior;    see
       <STRONG><A HREF="legacy_coding.3x.html">use_legacy_coding(3x)</A></STRONG>.

       Rudimentary  support  for multi-threaded applications may be available;
       see <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>.

       Functions that ease the management of multiple screens can be  exposed;
       see <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>.

       To  aid  applications  to  debug their memory usage, <EM>ncurses</EM> optionally
       offers functions  to  more  aggressively  free  memory  it  dynamically
       allocates itself; see <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>.

       The  library  facilitates auditing and troubleshooting of its behavior;
       see <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>.

       Compiling <EM>ncurses</EM> with the option <STRONG>-DUSE_GETCAP</STRONG> causes it to  fall  back
       to  reading <EM>/etc/termcap</EM> if the terminal setup code cannot find a <EM>term-</EM>
       <EM>info</EM>  entry  corresponding  to  <EM>TERM</EM>.   Use  of  this  feature  is  not
       recommended,  as  it essentially includes an entire <EM>termcap</EM> compiler in
       the <EM>ncurses</EM> startup code, at a cost in  memory  usage  and  application
       launch latency.

       <EM>PDCurses</EM>   and  NetBSD  <EM>curses</EM>  incorporate  some  <EM>ncurses</EM>  extensions.
       Individual man pages indicate where this is the case.


</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
       X/Open Curses defines two levels of conformance, "base" and "enhanced".
       The latter includes several additional features, such as wide-character
       and color support.  <EM>ncurses</EM> intends base-level conformance with  X/Open
       Curses,  and  supports  all  features  of its enhanced level except the
       <EM>untic</EM> utility.

       Differences between X/Open Curses and <EM>ncurses</EM>  are  documented  in  the
       "PORTABILITY" sections of applicable man pages.


</PRE><H3><a name="h3-Error-Checking">Error Checking</a></H3><PRE>
       In  many cases, X/Open Curses is vague about error conditions, omitting
       some of the SVr4 documentation.

       Unlike other implementations, <EM>ncurses</EM> checks pointer  parameters,  such
       as  those to <EM>WINDOW</EM> structures, to ensure that they are not null.  This
       is done primarily to guard  against  programmer  error.   The  standard
       interface does not provide a way for the library to tell an application
       which of several possible errors occurred.  An application that  relies
       on  <EM>ncurses</EM>  to  check  its function parameters for validity limits its
       portability and robustness.


</PRE><H3><a name="h3-Padding-Differences">Padding Differences</a></H3><PRE>
       In historical <EM>curses</EM> implementations, delays embedded in  the  <EM>terminfo</EM>
       capabilities  <STRONG>carriage_return</STRONG>  (<STRONG>cr</STRONG>),  <STRONG>scroll_forward</STRONG> (<STRONG>ind</STRONG>), <STRONG>cursor_left</STRONG>
       (<STRONG>cub1</STRONG>), <STRONG>form_feed</STRONG> (<STRONG>ff</STRONG>), and <STRONG>tab</STRONG> (<STRONG>ht</STRONG>) activated corresponding delay bits
       in  the  Unix terminal driver.  <EM>ncurses</EM> performs all padding by sending
       NUL bytes to the device.  This method is slightly more  expensive,  but
       narrows   the   interface   to   the   Unix  kernel  significantly  and
       correspondingly increases the package's portability.


</PRE><H3><a name="h3-Header-Files">Header Files</a></H3><PRE>
       The header file <EM>curses.h</EM> itself includes the header files  <EM>stdio.h</EM>  and
       <EM>unctrl.h</EM>.

       X/Open Curses has more to say,

           The  inclusion  of  <EM>curses.h</EM>  may make visible all symbols from the
           headers <EM>stdio.h</EM>, <EM>term.h</EM>, <EM>termios.h</EM>, and <EM>wchar.h</EM>.

       but does not finish the story.  A more complete account follows.

       <STRONG>o</STRONG>   The first <EM>curses</EM>, in 4BSD, provided a <EM>curses.h</EM> file.

           BSD <EM>curses</EM> code included <EM>curses.h</EM> and  <EM>unctrl.h</EM>  from  an  internal
           header file <EM>curses.ext</EM>, where "ext" abbreviated "externs".

           The  implementations of <EM>printw</EM> and <EM>scanw</EM> used undocumented internal
           functions of the standard I/O library (<STRONG>_</STRONG><EM>doprnt</EM>  and  <STRONG>_</STRONG><EM>doscan</EM>),  but
           nothing in <EM>curses.h</EM> itself relied upon <EM>stdio.h</EM>.

       <STRONG>o</STRONG>   SVr2  <EM>curses</EM>  added  <EM>newterm</EM>, which relies upon <EM>stdio.h</EM> because its
           function prototype employs the <EM>FILE</EM> type.

           SVr4 <EM>curses</EM> added <EM>putwin</EM> and <EM>getwin</EM>, which also use <EM>stdio.h</EM>.

           X/Open Curses specifies all three of these functions.

           SVr4 <EM>curses</EM> and X/Open Curses  do  not  require  the  developer  to
           include  <EM>stdio.h</EM>  before  <EM>curses.h</EM>.  Both document use of <EM>curses</EM> as
           requiring only <EM>curses.h</EM>.

           As a result, standard <EM>curses.h</EM> always includes <EM>stdio.h</EM>.

       <STRONG>o</STRONG>   X/Open Curses and SVr4 <EM>curses</EM>  are  inconsistent  with  respect  to
           <EM>unctrl.h</EM>.

           As  noted in <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <EM>ncurses</EM> includes <EM>unctrl.h</EM> from <EM>curses.h</EM>
           (as SVr4 does).

       <STRONG>o</STRONG>   X/Open Curses's comments about <EM>term.h</EM> and <EM>termios.h</EM>  may  refer  to
           HP-UX and AIX.

           HP-UX  <EM>curses</EM> includes <EM>term.h</EM> from <EM>curses.h</EM> to declare <EM>setupterm</EM> in
           <EM>curses.h</EM>, but <EM>ncurses</EM> and Solaris <EM>curses</EM> do not.

           AIX <EM>curses</EM> includes  <EM>term.h</EM>  and  <EM>termios.h</EM>.   Again,  <EM>ncurses</EM>  and
           Solaris <EM>curses</EM> do not.

       <STRONG>o</STRONG>   X/Open  Curses  says that <EM>curses.h</EM> <STRONG>may</STRONG> include <EM>term.h</EM>, but does not
           require it to do so.

           Some programs use functions declared in both <EM>curses.h</EM>  and  <EM>term.h</EM>,
           and  must  include  both header files in the same module.  Very old
           versions of  AIX  <EM>curses</EM>  required  inclusion  of  <EM>curses.h</EM>  before
           <EM>term.h</EM>.

           The  header  files supplied by <EM>ncurses</EM> include the standard library
           headers required for its  declarations,  so  <EM>ncurses</EM>'s  own  header
           files  can  be  included in any order.  For portability even to old
           AIX systems, include <EM>curses.h</EM> before <EM>term.h</EM>.

       <STRONG>o</STRONG>   X/Open Curses says "may make visible" because  including  a  header
           file  does  not  necessarily  make visible all of the symbols in it
           (consider <STRONG>#ifdef</STRONG> and similar).

           For instance, <EM>ncurses</EM>'s <EM>curses.h</EM> <STRONG>may</STRONG> include <EM>wchar.h</EM> if the  proper
           symbol  is defined, and if <EM>ncurses</EM> is configured for wide-character
           support.  If <EM>wchar.h</EM> is included, its symbols <STRONG>may</STRONG> be  made  visible
           depending on the value of the <STRONG>_XOPEN_SOURCE</STRONG> feature test macro.

       <STRONG>o</STRONG>   X/Open Curses mandates an application's inclusion of one standard C
           library header in a  special  case:  <EM>stdarg.h</EM>  before  <EM>curses.h</EM>  to
           prototype  the  functions  <EM>vw</EM><STRONG>_</STRONG><EM>printw</EM>  and  <EM>vw</EM><STRONG>_</STRONG><EM>scanw</EM> (as well as the
           obsolete <EM>vwprintw</EM> and <EM>vwscanw</EM>).  Each of  these  takes  a  variadic
           argument list, a <EM>va</EM><STRONG>_</STRONG><EM>list</EM> parameter, like that of <STRONG>printf(3)</STRONG>.

           SVr3  <EM>curses</EM>  introduced  the  two  obsolete  functions, and X/Open
           Curses the others.   In  between,  SVr4  <EM>curses</EM>  provided  for  the
           possibility  that  an application might include either <EM>varargs.h</EM> or
           <EM>stdarg.h</EM>.  These represented  contrasting  approaches  to  handling
           variadic  argument  lists.   The older interface, <EM>varargs.h</EM>, used a
           pointer to <EM>char</EM> for variadic functions' <EM>va</EM><STRONG>_</STRONG><EM>list</EM> parameter.   Later,
           the  list  acquired its own standard data type, <EM>va</EM><STRONG>_</STRONG><EM>list</EM>, defined in
           <EM>stdarg.h</EM>, empowering the compiler to check the types of a  function
           call's  actual  parameters  against the formal ones declared in its
           prototype.

           No  conforming  implementations  of  X/Open   Curses   require   an
           application to include <EM>stdarg.h</EM> before <EM>curses.h</EM> because they either
           have allowed for a special type, or,  like  <EM>ncurses</EM>,  they  include
           <EM>stdarg.h</EM> themselves to provide a portable interface.


</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
       Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.  Based on <EM>pcurses</EM>
       by Pavel Curtis.


</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
       <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>



ncurses 6.5                       2025-01-18                       <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
<li><a href="#h3-Application-Structure">Application Structure</a></li>
<li><a href="#h3-Overview">Overview</a></li>
<li><a href="#h3-Initialization">Initialization</a></li>
<li><a href="#h3-Naming-Conventions">Naming Conventions</a></li>
<li><a href="#h3-Wide-and-Non-wide-Character-Configurations">Wide and Non-wide Character Configurations</a></li>
<li><a href="#h3-Function-Name-Index">Function Name Index</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-ENVIRONMENT">ENVIRONMENT</a>
<ul>
<li><a href="#h3-BAUDRATE">BAUDRATE</a></li>
<li><a href="#h3-CC-_command-character_">CC (command character)</a></li>
<li><a href="#h3-COLUMNS">COLUMNS</a></li>
<li><a href="#h3-ESCDELAY">ESCDELAY</a></li>
<li><a href="#h3-HOME">HOME</a></li>
<li><a href="#h3-LINES">LINES</a></li>
<li><a href="#h3-MOUSE_BUTTONS_123">MOUSE_BUTTONS_123</a></li>
<li><a href="#h3-NCURSES_ASSUMED_COLORS">NCURSES_ASSUMED_COLORS</a></li>
<li><a href="#h3-NCURSES_CONSOLE2">NCURSES_CONSOLE2</a></li>
<li><a href="#h3-NCURSES_GPM_TERMS">NCURSES_GPM_TERMS</a></li>
<li><a href="#h3-NCURSES_NO_HARD_TABS">NCURSES_NO_HARD_TABS</a></li>
<li><a href="#h3-NCURSES_NO_MAGIC_COOKIE">NCURSES_NO_MAGIC_COOKIE</a></li>
<li><a href="#h3-NCURSES_NO_PADDING">NCURSES_NO_PADDING</a></li>
<li><a href="#h3-NCURSES_NO_SETBUF">NCURSES_NO_SETBUF</a></li>
<li><a href="#h3-NCURSES_NO_UTF8_ACS">NCURSES_NO_UTF8_ACS</a></li>
<li><a href="#h3-NCURSES_TRACE">NCURSES_TRACE</a></li>
<li><a href="#h3-TERM">TERM</a></li>
<li><a href="#h3-TERMCAP">TERMCAP</a></li>
<li><a href="#h3-TERMINFO">TERMINFO</a></li>
<li><a href="#h3-TERMINFO_DIRS">TERMINFO_DIRS</a></li>
<li><a href="#h3-TERMPATH">TERMPATH</a></li>
</ul>
</li>
<li><a href="#h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></li>
<li><a href="#h2-FILES">FILES</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a>
<ul>
<li><a href="#h3-Error-Checking">Error Checking</a></li>
<li><a href="#h3-Padding-Differences">Padding Differences</a></li>
<li><a href="#h3-Header-Files">Header Files</a></li>
</ul>
</li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
</BODY>
</HTML>
